home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks '96 / Booting Gallery / Booting Gallery (source) / (Libraries) / Fluent Libraries / Heaps / TempMemHeap.h < prev   
Encoding:
C/C++ Source or Header  |  1996-06-22  |  984 b   |  56 lines  |  [TEXT/BROW]

  1. #pragma once
  2.  
  3. #include "HeapObjects.h"
  4. #include <vector.h>
  5.  
  6. class TempMemHeap:public CHeap
  7. {
  8. public:
  9.     TempMemHeap(UInt32    reqSize);
  10.     virtual ~TempMemHeap();
  11.     
  12.     virtual Boolean        HeapOK();
  13.     virtual Boolean        BlockInHeapQ(Ptr block);
  14.     
  15.     virtual Size        FreeSpace();
  16.     virtual Size        BlockSize(Ptr block);
  17.     virtual Size        GetUsedSize();
  18.         
  19. protected:
  20.     virtual    Ptr            GetBlock(Size    size);
  21.     virtual void         FreeBlock(Ptr block);
  22.     
  23.     
  24.     Handle                fStore;
  25.     Heap                fHeap;
  26.     UInt32                fSize;
  27. };
  28.  
  29.  
  30. class DynamicTempHeap:public CHeap
  31. {
  32. public:
  33.     DynamicTempHeap(UInt32    chunkSize);
  34.     virtual ~DynamicTempHeap();
  35.     
  36.     virtual Boolean        HeapOK();
  37.     virtual Boolean        BlockInHeapQ(Ptr block);
  38.     
  39.     virtual Size        FreeSpace();
  40.     
  41.     virtual Size        BlockSize(Ptr block);
  42.  
  43.     virtual Size        GetUsedSize();
  44.     
  45. protected:
  46.     virtual    Ptr        GetBlock(Size    size);
  47.     virtual void     FreeBlock(Ptr block);
  48.     
  49.     virtual Boolean    AllocateFailed(Size sizeNeeded);
  50.     
  51.             CHeap*    LocateHeap(Ptr block);
  52.  
  53.     vector<CHeap*>    fHeapList;
  54.     UInt32            fChunkSize;
  55.  
  56. };